<?php

class CuentasAllController extends Sgit_Controller_Action
{

    protected $_checkZona = true;

    public function _begin()
    {
        $this->anio = $this->_request->getParam('anio');
        $this->version = $this->_request->getParam('version', 0);
        $this->view->version=$version;
        
        if ($this->_idZona == 10)
        {
            $this->zonas = array(1, 3, 4, 6);
        } elseif ($this->_idZona == 18)
        {
            $this->zonas = array(1, 2, 3, 4, 6);
        } else
        {
            $this->zonas = $this->_idZona;
        }

    }

   	public function indexAction()
	{
	   

       if(
        $this->_hasParam('pdf_x')  || 
        $this->_hasParam('pdf_y')  || 
        $this->_hasParam('pdf')   ||
        $this->_hasParam('excel_x')|| 
        $this->_hasParam('excel_y')|| 
        $this->_hasParam('excel'))
        {
            $this->_pdfSubTitle=$this->zona ." ".$this->_getParam('anio');
            $this->_export($this->valuesToExport());
        }else
        {
            $this->_index();
        }
	}


    public function _index()
    {
      
        $anio = $this->anio;
        $version = $this->version;
        $zonas=$this->zonas;


        $filtros = new Sgit_Form_Filtros();
        $f_anio = new Sgit_Form_Element_Select_Year('anio');
        $f_anio->setValue($anio);
        $filtros->addFormSelect($f_anio);


        $filtros->addPdf();
        $filtros->addExcel();
        $values = $this->_getFiltrosValues($filtros);
        $filtros->myRender();



        if ($anio)
        {
            $this->_toExport(true);
             
            $cuentas = new Application_Model_Cuentas();
            $cuentas->setAnio($anio);
            $cuentas->setVersion($version);
            $cuentas->setZona($zonas);
            $this->view->anio = $anio;


            //if($version==0){
                $estados_alojamiento = new Application_Model_CuentasEstados();
                $estados_alojamiento->setZona($zonas);
                $estados_alojamiento->setAnio($anio);
                $estado_alojamiento = $estados_alojamiento->getEstados('Alojamiento');
                
                $estados_electricidad = new Application_Model_CuentasEstados();
                $estados_electricidad->setZona($zonas);
                $estados_electricidad->setAnio($anio);
                $estado_electricidad = $estados_electricidad->getEstados('Electricidad');
                
                $estados_mmr = new Application_Model_CuentasEstados();
                $estados_mmr->setZona($zonas);
                $estados_mmr->setAnio($anio);
                $estado_mmr = $estados_mmr->getEstados('MMR');
                
    
                $this->view->estado_alojamiento = $estado_alojamiento;
                $this->view->estados_electricidad = $estado_electricidad;
                $this->view->estados_mmr = $estado_mmr;
            //}
            
            //alojamiento

            $this->view->coste_sap_alojamiento = $cuentas->addInforme($cuentas->getCosteSapAlojamiento());
            $this->view->inversa_sap_alojamiento = $cuentas->addInforme($cuentas->getInversaSapAlojamiento());
            $this->view->saldo_sap_alojamiento = $cuentas->addInforme($cuentas->getSaldoSapAlojamiento());


            $this->view->coste_alojamiento = $cuentas->addInforme($cuentas->getCosteAlojamiento());
            $this->view->inversa_alojamiento = $cuentas->addInforme($cuentas->getInversaAlojamiento());
            $this->view->saldo_alojamiento = $cuentas->addInforme($cuentas->getSaldoAlojamiento());

            $this->view->inmovilizado_total_alojamiento = $cuentas->addInforme($cuentas->getInmovilizadoAlojamiento());

            $this->view->coste_total_neto_alojamiento = $cuentas->addInforme($cuentas->getCosteTotalNetoAlojamiento());
            $this->view->saldo_total_neto_alojamiento = $cuentas->addInforme($cuentas->getSaldoTotalNetoAlojamiento());

            $this->view->inactividad = $cuentas->addInforme($cuentas->getSerieNaturalezaMeses(61));




            

            //electricidad
            
            $this->view->coste_sap_electricidad = $cuentas->addInforme($cuentas->getCosteSapElectricidad());
            $this->view->inversa_sap_electricidad = $cuentas->addInforme($cuentas->getInversaSapElectricidad());
            $this->view->saldo_sap_electricidad = $cuentas->addInforme($cuentas->getSaldoSapElectricidad());


            $this->view->coste_electricidad = $cuentas->addInforme($cuentas->getCosteElectricidad());
            $this->view->inversa_electricidad = $cuentas->addInforme($cuentas->getInversaElectricidad());
            $this->view->saldo_electricidad = $cuentas->addInforme($cuentas->getSaldoElectricidad());

            $this->view->inmovilizado_total_electricidad = $cuentas->addInforme($cuentas->getInmovilizadoElectricidad());

            $this->view->coste_total_neto_electricidad = $cuentas->addInforme($cuentas->getCosteTotalNetoElectricidad());
            $this->view->saldo_total_neto_electricidad = $cuentas->addInforme($cuentas->getSaldoTotalNetoElectricidad());
 


            $this->view->facturacion_sgit_electricidad = $cuentas->addInforme($cuentas->getFacturacionElectricidadSgit());
            $this->view->produccion_sgit_electricidad = $cuentas->addInforme($cuentas->getProduccionElectricidad());

            $this->view->diferencia_produccion_sgit_electricidad = $cuentas->addInforme($cuentas->getDiferenciaFacturacionProduccionElectricidad());
            $this->view->margen_bruto_electricidad = $cuentas->addInforme($cuentas->getMargenBrutoProduccionElectricidad());


            //mmr
            
            $this->view->coste_sap_mmr =    $cuentas->addInforme($cuentas->getCosteSapMMR());
            $this->view->inversa_sap_mmr =  $cuentas->addInforme($cuentas->getInversaSapMMR());
            $this->view->saldo_sap_mmr =    $cuentas->addInforme($cuentas->getSaldoSapMMR());
            $this->view->inversa_mmr =  $cuentas->addInforme($cuentas->getInversaMMR());
            $this->view->coste_mmr =    $cuentas->addInforme($cuentas->getCosteMMR());
            $this->view->saldo_mmr =    $cuentas->addInforme($cuentas->getSaldoMMR());
            $this->view->inmovilizado_total_mmr = $cuentas->addInforme($cuentas->getInmovilizadoMMR());
            $this->view->coste_total_neto_mmr  = $cuentas->addInforme($cuentas->getCosteTotalNetoMMR());
            $this->view->saldo_total_neto_mmr  = $cuentas->addInforme($cuentas->getSaldoTotalNetoMMR());
            $this->view->facturacion_sgit_mmr = $cuentas->addInforme($cuentas->getFacturacionMMRSgit());
            $this->view->produccion_sgit_mmr = $cuentas->addInforme($cuentas->getProduccionMMR());
            $this->view->diferencia_produccion_sgit_mmr = $cuentas->addInforme($cuentas->getDiferenciaFacturacionProduccionMMR());
            $this->view->margen_bruto_mmr = $cuentas->addInforme($cuentas->getMargenBrutoProduccionMMR());




            $meses = Sgit_Util_Meses::run();


            foreach ($meses as $k => $m)
            {
                //if($version==0){
                    $ico_alojamiento[$k] = $cuentas->icoEstado($estado_alojamiento[$k]) . ' ' . substr($m, 0, 3);
                    $ico_electricidad[$k] = $cuentas->icoEstado($estado_electricidad[$k]) . ' ' . substr($m, 0, 3);
                    $ico_mmr[$k] = $cuentas->icoEstado($estado_mmr[$k]) . ' ' . substr($m, 0, 3);
               /* 
                }else{
                    $ico_alojamiento[$k] = substr($m, 0, 3);
                    $ico_electricidad[$k] = substr($m, 0, 3);
                    $ico_mmr[$k] = substr($m, 0, 3);
            
                }*/
            }

            $this->view->meses_alojamiento = $ico_alojamiento;
            $this->view->meses_electricidad = $ico_electricidad;
            $this->view->meses_mmr = $ico_mmr;

        }
    }



    public function valuesToExport()
    {
        $cuentas = new Application_Model_Cuentas();
        $cuentas->setAnio($this->anio);
        $cuentas->setVersion($this->version);
        $cuentas->setZona($this->zonas);
            
            
        $rows[]=array('','','','Seguimiento','Alojamiento',$this->anio,$this->zona,'Version',$this->version);
        
        foreach($cuentas->addExport($cuentas->getCosteSapAlojamiento()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getInversaSapAlojamiento()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getSaldoSapAlojamiento()) as $f) $rows[]=$f;   
        foreach($cuentas->addExport($cuentas->getCosteAlojamiento()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getInversaAlojamiento()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getSaldoAlojamiento()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getInmovilizadoAlojamiento()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getCosteTotalNetoAlojamiento()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getSaldoTotalNetoAlojamiento()) as $f) $rows[]=$f; 
        foreach($cuentas->addExport($cuentas->getSerieNaturalezaMeses(61)) as $f) $rows[]=$f;
        
        $rows[]=array('','','','Seguimiento','Electricidad',$this->anio,$this->zona,'Version',$this->version);
        
        
        foreach($cuentas->addExport($cuentas->getCosteSapElectricidad()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getInversaSapElectricidad()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getSaldoSapElectricidad()) as $f) $rows[]=$f;   
        foreach($cuentas->addExport($cuentas->getCosteElectricidad()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getInversaElectricidad()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getSaldoElectricidad()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getInmovilizadoElectricidad()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getCosteTotalNetoElectricidad()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getSaldoTotalNetoElectricidad()) as $f) $rows[]=$f; 
        foreach($cuentas->addExport($cuentas->getFacturacionElectricidadSgit()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getProduccionElectricidad()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getDiferenciaFacturacionProduccionElectricidad()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getMargenBrutoProduccionElectricidad()) as $f) $rows[]=$f;  
        
       
        $rows[]=array('','','','Seguimiento','Comunicaciones ','Implantaciones ','e Instalaciones ',$this->anio,$this->zona,'Version',$this->version);


        foreach($cuentas->addExport($cuentas->getCosteSapMMR()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getInversaSapMMR()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getSaldoSapMMR()) as $f) $rows[]=$f;   
        foreach($cuentas->addExport($cuentas->getInversaMMR()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getCosteMMR()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getSaldoMMR()) as $f) $rows[]=$f;
        
        foreach($cuentas->addExport($cuentas->getInmovilizadoMMR()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getCosteTotalNetoMMR()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getSaldoTotalNetoMMR()) as $f) $rows[]=$f; 
        foreach($cuentas->addExport($cuentas->getFacturacionMMRSgit()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getProduccionMMR()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getDiferenciaFacturacionProduccionMMR()) as $f) $rows[]=$f;
        foreach($cuentas->addExport($cuentas->getMargenBrutoProduccionMMR()) as $f) $rows[]=$f;  
        
                    
        return $rows;
    }
    
    public function excelAction()
    {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);

        $excel = new Sgit_Excel();
        $excel->setColumnas($this->_getXml());
        
        
        $excel->render($this->valuesToExport(), $this->_controllerName);
    }
    
    public function pdfAction()
    {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);

        $pdf = new Sgit_Pdf('L');
        $pdf->setColumnas($this->_getXml());
        $pdf->resaltarRows(array(0,21,48));
        
        
        $pdf->SetTitle('Seguimiento Global  '.$this->zona .' '.$this->anio.' V'.$this->version);
        $pdf->render($this->valuesToExport(), $this->_controllerName);
            
    }



}
